package com.zln.hello;
/**
 * 演示短路或|| 和 逻辑 | 的逻辑运算符的使用
 */
public class LogicOperator02 {
    public static void main (String[] args){
        int age = 50;
        if (age > 20 || age < 30)
        {
            System.out.println("OK100");
        }

        if (age > 20 | age < 30)
        {
            System.out.println("OK200");
        }

        /*7. ||与|使用区别
            a. ||短路或：如果第一个条件为true，则第二个条件不回判断，最终结果为true，效率高
            b. |逻辑或：不管第一个条件是否是true，第二个条件都要判断，效率低
        */
        int a = 4;
        int b = 9;
        //对于短路或而言，如果第一个条件为true，后面的条件不再判断 ++b不再执行
        if (a > 1 || ++b > 4){
            System.out.println("OK300");
        }
        System.out.println("a=" + a + "\t b=" + b);  // a =4 b = 9

        //对于逻辑或而言，如果第一个条件为true，后面的条件仍然会判断
        if (a > 1 | ++b > 4){
            System.out.println("OK300");
        }
        System.out.println("a=" + a + "\t b=" + b);   // a = 4 b = 5
    }
}
